A speckle pattern is a micro-pattern of illumination generated by a coherent light source, such as a laser, when it passes through a diffuser or when it scatters from a surface which has irregularities larger than the wavelength of the illumination. Streams of laser speckle images are used in some types of computer mice to calculate 2D velocity vectors tracking motion of the mouse. Disparities between corresponding speckles in images of the same speckle pattern taken at different times give information about 2D displacement.
For many applications, such as robotics, vehicle navigation, computer game applications, medical applications and other problem domains, it is valuable to be able to track motion comprising 3D position (and optionally also orientation) of a device as it moves in a known environment. Orientation and position of a device is known as pose and may comprise six degrees of freedom (three of translation and three of rotation).
Existing approaches for tracking 3D position of an object in an environment, such as time of flight camera systems, structured light camera systems, fiducial marker systems, global positioning systems and others are often best suited for coarse levels of detail. Existing equipment for fast and/or fine-grained tracking of objects requires considerable fixed infrastructure and is typically cost-prohibitive for most consumers.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known motion tracking systems.